Block Decomposition of Inheritance Hierarchies

نویسنده

  • Christian Capelle
چکیده

Inheritance hierarchies play a central role in object oriented languages as in knowledge representation systems. These hierarchies are acyclic directed graphs representing the underline structure of objects. This paper is devoted to the study of eecient algorithms to decompose recursively an inheritance hierarchy into independent subgraphs which are inheritance hierarchies themselves. This process gives a tree called decomposition tree. The decomposition proposed here is based on the concept of block which is an extension of the concept of h-module proposed have presented a linear algorithm to decompose an inheritance hierarchy into h-modules. The algorithm proposed here to decompose an inheritance hierarchy into blocks generalizes the algorithm of Habib et al.. It computes a linear extension of the hierarchy such that the blocks are factors of the extension. This is a general technique applicable to diierent de-compositions 2, 1]. The unicity of the block decomposition comes from a proposition showing the links between blocks and modules of the well known modular decomposition of directed graphs, and from the theorem of unicity of the modular decomposition. While the cost to compute the block decomposition is greater than the h-module decomposition one, it allows a greater factorization of the information of inheritance represented by the hierarchy. This decomposition can be useful for graph drawing applications 6] and could also be used for hierarchy coding applications. Such a decomposition can also be seen as a tool to help object oriented languages programmer to \understand" their hierarchies. Some linearizations of object hierarchies can be deened from this decomposition.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Efficient approach for restructuring multiple inheritance hierarchies

This paper discusses the restructuring of inheritance hierarchies of classes and introduces a method of restructuring multiple hierarchies of class inheritance, which removes duplicated methods and creates inheritance hierarchies without overridden methods while preserving the behavior of objects. This paper formulates a restructuring problem for 0–1 integer programming and presents a network-b...

متن کامل

Evaluating and Optimizing Factorization in Inheritance Hierarchies

Inheritance hierarchies often constitute the backbone of object-oriented systems. Their quality is therefore quite crucial. We present here our work the objective of which is to help designers to improve and to measure the quality of their inheritance hierarchies. The quality we deal with is the degree of factorization of information. Our work is based on the mathematical structure of Galois (c...

متن کامل

On Decidability of Nominal Subtyping with Variance

We investigate the algorithmics of subtyping in the presence of nominal inheritance and variance for generic types, as found in Java 5, Scala 2.0, and the .NET 2.0 Intermediate Language. We prove that the general problem is undecidable and characterize three different decidable fragments. From the latter, we conjecture that undecidability critically depends on the combination of three features ...

متن کامل

Merging Inheritance Hierarchies for SchemaIntegration based on Concept Lattices 1

Merging inheritance hierarchies is an essential task of schema integration as part of the design of a federated database. Based on the formalization of inheritance hierarchies as concept lattices we present an eecient algorithm for deriving an integrated inheritance hierarchy as result of merging two inheritance hierarchies with overlapping extensions and types. Several methods are presented to...

متن کامل

Guru - A Tool for Automatic Restructuring of SelfInheritance

This paper 1 introduces Guru, a prototype tool for restructuring inheritance hierarchies in Self, while preserving the behavior of objects. Guru reverse engineers from existing inheritance hierarchies. Unlike previous work, Guru handles re-sends, redeened methods and the restructuring of only part of a system. Furthermore, Guru handles dynamic and cyclical inheritance, which are more speciic to...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1997